#pragma once

class CAnimationManager;
class CTileManager;


/*
*	CRenderer 
*		friend of CObjectManager
*/
class CRenderer
{
public:
	/* SINGLETON */
	static CRenderer*	GetInstance		( void );
	static void			DeleteInstance	( void );

	void Initialize( void );
	void Shutdown( void );

	/*
	*	RenderScene
	*		Main render function that calls RenderObjects
	*		and RenderLevel
	*/
	void RenderScene( void );
	void RenderObjects( void );
	void RenderLevel( void );
	void UpdateLevel( void );

	void HandleCollision( void );

private:
	/* SINGELTON */
	static CRenderer* s_Instance;
	CRenderer(void);
	~CRenderer(void);
	CRenderer( const CRenderer& );
	CRenderer& operator= ( const CRenderer& );

	CAnimationManager*	m_pAnimManager;
	CTileManager*		m_pTileManager;

};

